using System;
using System.Linq;
using Kiwi.Container.Scope;

namespace Kiwi.Container.Internal
{
    public interface IInternalContainer : IComponentCache
    {
        IInternalContainer InternalParent { get; }
        IContainerScope Scope { get; }
        ILookup<Type, IComponentRegistration> CreatorLookup { get; }
        bool HasComponent(Type type);
        IInternalContainerLock CreateLock();
    }
}